package cn.alcatraz.basic.mapper;


import cn.alcatraz.basic.query.BaseQuery;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface BaseMapper<T> {
    /**
     * 查询全部
     * @return
     */
    List<T> loadAll();

    /**
     * 根据id查询数据
     * @param id
     * @return
     */
    T loadById(Long id);

    /**
     * 添加单条数据
     * @param t
     */
    void save(T t);

    /**
     * 根据id删除
     * @param id
     */
    void removeById(Long id);

    /**
     * 根据id修改
     * @param t
     */
    void updateById(T t);

    /**
     * 分页+高级查询
     * @param baseQuery
     * @return
     */
    List<T> queryT(BaseQuery baseQuery);

    /**
     * 获取查询结果数据总条数
     * @return
     */
    Integer getCount(BaseQuery baseQuery);


    /**
     * @Title: patchRemove
     * @Description: 批量删除
     * @Author: TinyYu
     * @Version: 1.0
     * @Date:  2022/6/25 11:27
     * @Parameters:
     * @Return
     */
    void patchRemove(Long[] ids);
}
